<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--   获取绝对路径 -->
<c:set var="ctx" value="${pageContext.request.contextPath }" />

<%@ include file="/common/include/include.jsp"%> 
</head>
<body>

	<div id="content-container">
		<%@ include file="/common/include/pageTitleBread.jsp"%>
		<div id="page-content">
			<div class="col-sm-2 eq-box-sm">
				<div class="panel lion-fullHeight">
					<div class="panel-body">
						<ul id="treeDemo" class="ztree"></ul>
					</div>
				</div>
			</div>
			<div class="col-sm-10 eq-box-sm">
				<div class="panel lion-fullHeight">
					<div class="panel-body">
						<shiro:hasPermission name="admin:user:save"> 
							<a id="add" class="btn btn-info data-toolbar"
								onclick="save()" href="javascript:void(0);"><i
								class="demo-pli-add"></i> 添加</a> 
						</shiro:hasPermission>
						<shiro:hasPermission name="admin:user:delete"> 
							<a id="del" class="btn btn-danger data-toolbar" onclick="delSel()"
								href="javascript:void(0);"><i class="demo-pli-cross"></i>
								批量删除</a>
						</shiro:hasPermission>	
							
						<table id="pageTable" class="demo-add-niftycheck" ></table>
					</div>
				</div>
			</div>
		</div>
		
		
		
		
		
		
		<!-- 删除、批量删除 -->
		<script>
			//删除
			function del(ids) {
				
				var userids=new Array();
				
				if(ids instanceof Array){
					userids=ids;
				}else{
					userids.push(ids);
				}
				
				
				
				pointLion
						.confimMsg(
								"您是否要删除所选信息 ?<br/> 点击确认进行删除 , 点击取消取消该操作",
								null,
								function() {
									//执行删除
									var data = common_ajax.ajaxFunc(
											"/admin/user/delete", {
												"idsArr" : userids
											}, "json", null);
									//删除结果
									if (data.success) {
										pointLion
												.alertMsg(
														data.message,
														"success",
														null,
														function() {
															doPjax(ctx
																	+ '/admin/user/getListPage');//跳转到列表页
														});
									}else if(data==""){
										pointLion.alertMsg("您无删除该用户信息的权限","danger", null, null);
									} else {
										pointLion.alertMsg(data.message,
												"danger", null, null);
									}
								});
			};

			//批量删除
			function delSel() {
				var data = [];
				$(
						"#pageTable input[type='checkbox'][name!='btSelectAll']:checked")
						.each(function() {
							data.push($(this).val());
						});
				if (data.length == 0) {
					pointLion.alertMsg("请选择要删除的数据!", "danger", null, null);
					return;
				}
				del(data);//执行删除
			}
			
			
		</script>
		
		
		<!-- 授权 -->
		<script>

			//给用户赋值角色
			var giveUserRoleIframe;
			function giveUserRole(userid) {
				var index = layer
						.open({
							type : 2,
							title : false, //不显示标题栏
							area : [ '370px', '650px' ],
							shade : 0.8,
							id : 'giveUserRole', //设定一个id，防止重复弹出
							resize : false,
							closeBtn : false,
							isOutAnim : false,
							btn : [ '确定', '取消' ],
							btnAlign : 'c',
							content : ctx
									+ '/admin/user/getGiveUserRolePage?userid='
									+ userid,
							success : function(layero) {
								giveUserRoleIframe = window[layero
										.find('iframe')[0]['name']];
							},
							yes : function() {
								var nodes = giveUserRoleIframe
										.getCheckedNodes();
								var roleIds = [];
								$.each(nodes, function(i, o) {
									roleIds.push(o.id);
								})
								var result = common_ajax.ajaxFunc(
										"/admin/user/giveUserRole", {
											"roleIds" : roleIds,
											"userid" : userid
										}, "json", null);//保存所有角色
								if (result.success) {
									pointLion.alertMsg("保存成功", "success", null,
											null);
								} else {
									pointLion.alertMsg("保存失败", "danger", null,
											null);
								}
								layer.closeAll();
							}
						});
			}
			var roleAuth;
			function setRoleAuth(data) {
				roleAuth = data;
			}

			//打开编辑页面
			function save() {
				doPjax("${ctx }/admin/user/save")
			}
		</script>


		<!-- 分页表格 -->
		<script type="text/javascript">
			var orgid = '';
			var col = [
					{
						field : 'checked',
						checkbox : true,
						align : 'center'
					},
					{
						field : 'id',
						title : 'id',
						align : 'center'
					},
					{
						field : 'username',
						title : '用户账号',
						align : 'center'
					},
					{
						field : 'name',
						title : '用户名称',
						align : 'center'
					},
					{
						field : 'sex',
						title : '性别',
						align : 'center',
						formatter : function(value, row, index) {
							if (value == "1") {
								return "男";
							} else {
								return "女";
							}
						}
					},
					{
						field : 'departmentname',
						title : '所属单位',
						align : 'center'
					},
					{
						field : 'mobile',
						title : '电话',
						align : 'center'
					},
					{
						field : 'email',
						title : '邮箱',
						align : 'center'
					},
					{
						field : 'control',
						title : '操作',
						align : 'center',
						width : '440',
						formatter : function(value, row, index) {
							//通过formatter可以自定义列显示的内容
							//value：当前field的值，即id
							//row：当前行的数据
							var a = '<shiro:hasPermission name="admin:user:giveRoles"><a class="label label-table label-info" onclick="giveUserRole(\''
									+ row.id
									+ '\')" href="javascript:void(0);" >授权</a>&nbsp;</shiro:hasPermission>';
							a = a
									+ '<shiro:hasPermission name="admin:user:update"><a class="label label-table label-success" onclick="doPjax(\''
									+ ctx
									+ '/admin/user/update?id='
									+ row.id
									+ '\')" href="javascript:void(0);" >编辑</a>&nbsp;</shiro:hasPermission>';
							a = a
									+ '<shiro:hasPermission name="admin:user:delete"><a class="label label-table label-danger" onclick="del(\''
									+ row.id
									+ '\')" href="javascript:void(0);" >删除</a></shiro:hasPermission>';
							return a;
						}
					} ];
			
			var opt = {
				//请求方法
				method : 'post',
				//是否显示行间隔色
				striped : true,
				//是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）     
				cache : false,
				//data-toolbar: "#demo-delete-row",
				//是否显示分页（*）  
				pagination : true,
				//是否启用排序  
				sortable : false,
				//排序方式 
				sortOrder : "asc",
				//初始化加载第一页，默认第一页
				//我设置了这一项，但是貌似没起作用，而且我这默认是0,- -
				pageNumber:1,   
				//每页的记录行数（*）   
				pageSize : 4,
				//可供选择的每页的行数（*）    
				pageList : [ 2, 4, 6, 8 ],
				//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
				url : ctx + "/admin/user/listData",
				//默认值为 'limit',传给服务端的参数为：limit, offset, search, sort, order Else
				queryParamsType:'limit',   
				////查询参数,每次调用是会带上这个参数，可自定义                         
				queryParams:function(params) {
					return {
						//这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的 
						pageSize: params.limit,  //页面大小 
						startRow: params.offset, //开始行数
						departmentId:orgid,  //单击左边树形图的部门id
					}; 

				},
				//分页方式：client客户端分页，server服务端分页（*）
				sidePagination : "server",
				//是否显示搜索
				search : false,
				//Indicate which field is an identity field.
				idField : "id",
				columns : col,
				pagination : true
			};		
			

			//表格
			function initTable() {
				$('#pageTable').bootstrapTable(opt);
				//隐藏id列
				$('#pageTable').bootstrapTable('hideColumn', 'id');
			}
			function refreshTable() {
				$("#pageTable").bootstrapTable('refresh', opt);
				//隐藏id列
				$('#pageTable').bootstrapTable('hideColumn', 'id');
			}
			
			initTable();
		</script>



		<!-- 动态生成树形图 -->
		<script>
			$(document).ready(function() {
				initFullHeight();//初始化高度
				onloadZTree();//加载树形图
			});
			//设置树形图的各个属性
			var setting = {
				//是否异步
				async : {
					enable : true,
				},
				//树形显示节点，不设置这个属性，便不会区分父节点和子节点
				data : {
					simpleData : {
						enable : true
					}
				},
				//回调函数，这里设置了节点单击事件,noClick属性的值要与自定义的处理单击事件的函数值一致
				callback : {
					onClick : onClick
				}
			};

			//加载ztree  
			function onloadZTree() {
				var ztreeNodes;
				$.ajax({
					async : true, //是否异步  
					cache : false, //是否使用缓存  
					type : 'post', //请求方式,post  
					dataType : "json", //数据传输格式  
					url : "${ctx }/admin/department/getDepartmentTree", //请求链接  
					error : function() {
						alert('亲，网络有点不给力呀！');
					},
					success : function(data) {
						ztreeNodes = eval("[" + data + "]"); //将string类型转换成json对象
						$.fn.zTree.init($("#treeDemo"), setting, ztreeNodes);
						//获取这个数的对象，treeDemo与这棵树的id相对应
						var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
						//表示 展开 全部节点
						treeObj.expandAll(true);
					}
				});
			};
			//单击节点后触发的函数，其中treeNode包含了整个节点的信息，例如id、pid、level、name等
			function onClick(event, treeId, treeNode, clickFlag) {
				orgid = treeNode.id;
				//刷新表格
				refreshTable();
			}
		</script>






	</div>
</body>
</html>
